从被动救火到主动管控,银行业SQL开发DevOps实践
近年来,金融行业迅速发展,服务领域不断扩大,业务负载与运行压力给系统架构带来极大的挑战。数据库作为金融行业信息系统的承载平台,其性能直接关系到业务能否连续正常运行。其中,不良SQL是影响数据库性能的重要原因。因此,金融行业对SQL质量管控提出了新的要求。
银行系统面临多种SQL问题
A银行是12家全国性股份制商业银行之一。截至2020年底,近4万职工通过千余家营业机构为客户提供多种金融服务。该银行业务发展导致其技术架构十分庞大。虽然已经建立了开发过程管理体系,但A银行缺少SQL质量管控流程,SQL问题较多,具体主要表现在以下三个方面:
1. 开发人员基数大,SQL开发水平参差不齐,人工审核效率低;
2. 数据库类型多样,数量超过2500个,待审核SQL大量累积;
3. 问题SQL流入生产环境,导致数据库负载高、性能差,影响业务体验。同时,问题SQL跟踪,溯源困难,DBA疲于救火。
为改变被动救火的局面,该行在SQL质量管控方面做了许多尝试,如从只监控生产库的TOP SQL到运维前置,在应用发布上线前通过人工找出问题SQL进行整改。但是这些尝试始终没有很好解决开发人员SQL编写欠规范的问题,大量审核未整改SQL给应用如期上线造成巨大压力。
SQM实现应用全流程SQL质量管控
基于A银行系统在SQL方面的问题,云和恩墨为其提供了SQM-SQL质量管控平台,将SQL质量控制进一步前置到开发环节,结合自动化的审核能力实现了应用全流程SQL质量管控的闭环。
云和恩墨为A银行提供的解决方案
在需求设计阶段,云和恩墨为该行提供了可参考的设计规范准则,确定项目与成员配置,保证SQL质量管控的制度约定;
在开发阶段,通过工单审核和开放接口审核,开发人员可以自检SQL并初步优化,DBA进行复核;
在测试阶段,SQM通过Java应用监控和上线前严格的SQL审核管控和留痕,确保每次应用发布无SQL问题;
在生产阶段,SQM自动监控生产SQL,将低效SQL形成生产问题工单处理。
SQL质量管控融入A银行DevOps建设
截至2021年4月,该行有3700多个用户使用了SQM平台,持续审核600余个项目中的SQL问题,监控近900个开发测试库,生成的工单数量超3万个,审核的SQL数量超过65万条,发现问题SQL 23万多条。
使用SQM后,A银行由于SQL性能引发的严重问题减少。同时,统一开发规范流程帮助该行将SQL质量管控融入了DevOps建设中。此外,SQM能够促进项目性能问题归档分类追踪,为银行项目组开发质量评价提供了量化指标依据。
SQM的前置SQL审核能力,有效阻断了问题SQL流入生产环境,帮助A银行从根本上解决了由于不良SQL导致的生产性能低下问题,打通从研发到生产全流程的SQL质量管控,满足A银行应用频繁变更上线场景下的应用高效平稳运行的需要。
SQM-SQL质量管控平台简介
SQM-SQL质量管控平台,能够自动抓取数据库开发与运行环境中的对象设计与SQL 信息,并依据既定的审核规则分析,找出对象设计与SQL中的潜在问题,给出专业改进建议,规避应用性能和稳定性风险。SQM可在应用开发、测试、上线、生产不同阶段对SQL进行质量管控,前置性地保障应用稳定、高效运行。
云和恩墨创立于2011年,以“数据驱动,成就未来”为使命,是智能的数据技术提供商。我们致力于将数据技术带给每个行业、每个组织,构建数据驱动的智能未来。云和恩墨在基础软件、数据和云软件、数据服务等领域为企业提供可信赖的产品、解决方案和服务,与业界厂商广泛合作,围绕用户需求,持续为客户创造价值,激发数据潜能,为成就未来敏捷高效的数字世界而不懈努力。目前,云和恩墨的600多名员工分布在国内外的32个地区,已累计直接服务8大关键行业(金融、通信、能源、政务、制造、交通、医疗、商贸)的1,000多个组织,50,000多套业务系统,300,000多名行业从业者。